home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / util2 / vol12n11.zip / OLFONT.ZIP / OLFDEMO.C < prev    next >
C/C++ Source or Header  |  1993-02-03  |  2KB  |  67 lines

  1. /*-----------------------------------------------------
  2.    OLFDEMO.C -- OS/2 Outline Fonts Demonstration Shell
  3.                 (c) Charles Petzold, 1993
  4.   -----------------------------------------------------*/
  5.  
  6. #define INCL_WIN
  7. #define INCL_GPI
  8. #include <os2.h>
  9.  
  10. extern void PaintClient (HPS hps, SHORT cxClient, SHORT cyClient) ;
  11.  
  12. MRESULT EXPENTRY ClientWndProc (HWND, ULONG, MPARAM, MPARAM) ;
  13.  
  14. int main (void)
  15.      {
  16.      static CHAR  szClientClass [] = "OlfDemo" ;
  17.      static ULONG flFrameFlags = FCF_TITLEBAR      | FCF_SYSMENU  |
  18.                                  FCF_SIZEBORDER    | FCF_MINMAX   |
  19.                                  FCF_SHELLPOSITION | FCF_TASKLIST ;
  20.      HAB          hab ;
  21.      HMQ          hmq ;
  22.      HWND         hwndFrame, hwndClient ;
  23.      QMSG         qmsg ;
  24.  
  25.      hab = WinInitialize (0) ;
  26.      hmq = WinCreateMsgQueue (hab, 0) ;
  27.  
  28.      WinRegisterClass (hab, szClientClass, ClientWndProc, CS_SIZEREDRAW, 0) ;
  29.  
  30.      hwndFrame = WinCreateStdWindow (HWND_DESKTOP, WS_VISIBLE,
  31.                                      &flFrameFlags, szClientClass,
  32.                                      NULL, 0L, NULLHANDLE, 0, &hwndClient) ;
  33.  
  34.      while (WinGetMsg (hab, &qmsg, NULLHANDLE, 0, 0))
  35.           WinDispatchMsg (hab, &qmsg) ;
  36.  
  37.      WinDestroyWindow (hwndFrame) ;
  38.      WinDestroyMsgQueue (hmq) ;
  39.      WinTerminate (hab) ;
  40.      return 0 ;
  41.      }
  42.  
  43. MRESULT EXPENTRY ClientWndProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
  44.      {
  45.      static SHORT cxClient, cyClient ;
  46.      HPS          hps ;
  47.  
  48.      switch (msg)
  49.       {
  50.           case WM_SIZE:
  51.                cxClient = LOUSHORT (mp2) ;
  52.                cyClient = HIUSHORT (mp2) ;
  53.                return 0 ;
  54.  
  55.           case WM_PAINT:
  56.                hps = WinBeginPaint (hwnd, NULLHANDLE, NULL) ;
  57.  
  58.                GpiErase (hps) ;
  59.  
  60.                PaintClient (hps, cxClient, cyClient) ;
  61.  
  62.                WinEndPaint (hps) ;
  63.                return 0 ;
  64.           }
  65.      return WinDefWindowProc (hwnd, msg, mp1, mp2) ;
  66.      }
  67.